home *** CD-ROM | disk | FTP | other *** search
- Path: abcfd20.larc.nasa.gov!amiga-request
- From: amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
- Subject: v90i280: ZapDH0 1.3 - patch 2090 OFS partition to be ZH0:, Part01/01
- Reply-To: "John Davis,chem dept, UoC NZ" <CHEM194@canterbury.ac.nz>
- Newsgroups: comp.sources.amiga
- Message-ID: <comp.sources.amiga:v90i280@abcfd20.larc.nasa.gov>
- Date: 14 Oct 90 18:27:24 GMT
- Approved: tadguy@uunet.UU.NET (Tad Guy)
- X-Mail-Submissions-To: amiga@uunet.uu.net
- X-Post-Discussions-To: comp.sys.amiga
-
- Submitted-by: "John Davis,chem dept, UoC NZ" <CHEM194@canterbury.ac.nz>
- Posting-number: Volume 90, Issue 280
- Archive-name: util/zapdh0-1.3/part01
-
- [ uuencoded executables enclosed ...tad ]
-
- a utility for 2090 owners who are sick of the the OFS partition of
- their HD being called DH0:, and who are equally sick of brain-dead
- install programs and filerequesters that list only dh0:. Will
- rename dh0: to zh0:, allowing you to mount your main (ffs) partition
- as dh0:. Also includes a facility to 'clone' the df2: drive as
- df1: for people with one internal and one external drive on their
- 2000.
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 1)."
- # Contents: listdevs.mod listdevs.uu zapdh0.doc zapdh0.mod zapdh0.uu
- # Wrapped by tadguy@abcfd20 on Sun Oct 14 14:27:23 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'listdevs.mod' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'listdevs.mod'\"
- else
- echo shar: Extracting \"'listdevs.mod'\" \(6787 characters\)
- sed "s/^X//" >'listdevs.mod' <<'END_OF_FILE'
- XMODULE lister;
- X
- X(* example code showing how to scan the DOS device list
- X to work out what devices are available to DOS,
- X what their types are ( whether they're a device, a dir etc ),
- X and how to extract info on properties of devices ( host device
- X physical parameters etc )
- X*)
- X
- X(* by J Davis v1.0 10/89 *)
- X(* v1.1 6/90 *)
- X(* compiled using TDI M-2 v3.01a *)
- X
- X(* thanks to Patrick Horgan for the code he
- X posted to UseNet showing how to do the enviroment probing
- X*)
- X
- XFROM DOSLibrary IMPORT DOSName,DOSBase,BPTR,BSTR;
- XFROM DOSExtensions IMPORT DosBaseRec,RootNode,DosInfo,DeviceList;
- XFROM AmigaUtils IMPORT PtrFromBPTR;
- XFROM SYSTEM IMPORT NULL;
- XFROM InOut IMPORT WriteString,WriteLn,Write;
- XFROM LongInOut IMPORT WriteLongCard,WriteLongInt,WriteLongHex;
- XFROM Libraries IMPORT OpenLibrary,CloseLibrary;
- XFROM DOSLibrary IMPORT DateStampRec;
- XFROM FileHandler IMPORT DeviceNode,FileSysStartupMsg;
- XFROM SYSTEM IMPORT ADDRESS,BYTE;
- X
- XTYPE
- X
- Xstring = ARRAY [0..255] OF CHAR;
- Xstrptr = POINTER TO string;
- X
- XDOSenv = ARRAY [0..255] OF LONGCARD;
- X
- XVAR
- X
- Xourdosbase : POINTER TO DosBaseRec; (* use this to access dosbase *)
- Xinfoptr : POINTER TO DosInfo; (* points to DOSinfo node *)
- Xdevlistptr : POINTER TO DeviceList; (* points to current place is DOS devlist *)
- Xdevnodeptr : POINTER TO DeviceNode; (* used for accessing device nodes *)
- Xfssm : POINTER TO FileSysStartupMsg; (* used to access the filesystemstartupmessage *)
- Xdosenvptr : POINTER TO DOSenv;
- X
- Xnameptr : strptr;
- Xcptr : POINTER TO CHAR;
- Xp : CARDINAL;
- X
- X
- X
- XPROCEDURE WriteBSTR(b:BPTR);
- X(* output a BSTR *)
- XVAR
- Xnptr : strptr;
- Xc : CARDINAL;
- XBEGIN
- Xnptr:=PtrFromBPTR(b);
- XIF nptr^[0]>=CHR(1) THEN
- X FOR c:=1 TO ORD(nptr^[0]) DO
- X Write(nptr^[c]);
- X END;
- XEND;
- XEND WriteBSTR;
- X
- X
- XBEGIN
- X
- XDOSBase:=OpenLibrary(DOSName,0);
- X(* open the dos lib *)
- X
- XWriteString("listdevs v1.2 By John Davis 6/90");
- XWriteLn;
- X
- Xourdosbase:=DOSBase;
- X(* get a usable pointer onto dosbase *)
- X
- Xinfoptr:=PtrFromBPTR(ourdosbase^.dlRoot^.rnInfo);
- X(* get pointer to dosinfo struct *)
- X
- Xdevlistptr:=PtrFromBPTR(infoptr^.diDevInfo);
- X(* get a pointer to start of devlist *)
- X
- XWHILE devlistptr<>NULL DO
- X (* scan down device list checking as we go *)
- X
- X (* print out the device name *)
- X WriteString("node name : ");
- X WriteBSTR(devlistptr^.dlName);
- X WriteLn;
- X
- X Write(CHR(9));
- X
- X (* determine the nodes type and display it *)
- X IF devlistptr^.dlType=0 THEN
- X WriteString("Type : DEV ");
- X WriteLn;
- X ELSIF devlistptr^.dlType=1 THEN
- X WriteString("Type : DIR ");
- X WriteLn;
- X ELSIF devlistptr^.dlType=2 THEN
- X WriteString("Type : VOL ");
- X WriteLn;
- X ELSE
- X WriteString("Type : ??? ");
- X WriteLn;
- X END;
- X
- X (* I'm primarily interested in devices,
- X VOLUMES are simply currently mounted disks
- X DIRS are assigned logical drives ( such as fonts: )
- X *)
- X
- X IF devlistptr^.dlType=0 THEN
- X (* node is a device node, extract extra info *)
- X
- X devnodeptr:=ADDRESS(devlistptr);
- X (* transform to right type *)
- X
- X fssm:=PtrFromBPTR(devnodeptr^.dnStartup);
- X (* get pointer to filesystemstartup block *)
- X
- X dosenvptr:=PtrFromBPTR(fssm^.fssmEnviron);
- X (* get pointer into enviroment block *)
- X
- X (* if there's no fssm the fssmptr _should_ be null, but this
- X doesn't seem to be always true ( espec on par, prt and ser )
- X so check to see if the dosenv[de_tablesize] makes sense also
- X *)
- X IF (fssm<>NULL) AND (dosenvptr^[0]<=16) THEN
- X
- X (* printout host device for this dev *)
- X Write(CHR(9));
- X WriteString("Device : ");
- X WriteBSTR(fssm^.fssmDevice);
- X WriteLn;
- X
- X (* and the host devices unit *)
- X Write(CHR(9));
- X WriteString("Unit : ");
- X WriteLongCard(fssm^.fssmUnit,8);
- X WriteLn;
- X
- X (* now probe the enivroment space *)
- X
- X FOR p:=0 TO SHORT(dosenvptr^[0]) DO
- X Write(CHR(9));
- X
- X CASE p OF
- X 0: WriteString("env size : "); |
- X 1: WriteString("block size : "); |
- X 2: WriteString("SecOrg : "); |
- X 3: WriteString("Num Heads : "); |
- X 4: WriteString("Sec / Blk : "); |
- X 5: WriteString("blks / track : "); |
- X 6: WriteString("reserved : "); |
- X 7: WriteString("prefac : "); |
- X 8: WriteString("Interleave : "); |
- X 9: WriteString("Low Cyl : "); |
- X 10: WriteString("High Cyl : "); |
- X 11: WriteString("Buffers : "); |
- X 12: WriteString("bufmemtype : "); |
- X 13: WriteString("Maxtransfer : "); |
- X 14: WriteString("Mask : "); |
- X 15: WriteString("bootpri : "); |
- X 16: WriteString("DOStype : ");
- X END;
- X
- X IF p<>16 THEN
- X WriteLongCard(dosenvptr^[p],8);
- X ELSE
- X WriteLongHex(dosenvptr^[p],16);
- X END;
- X
- X WriteLn;
- X END;
- X END;
- X
- X (* display the taskpri of the device handler *)
- X Write(CHR(9));
- X WriteString("Pri : ");
- X WriteLongInt(devnodeptr^.dnPriority,8);
- X WriteLn;
- X
- X (* and the amunt of stack for that task *)
- X Write(CHR(9));
- X WriteString("Stack : ");
- X WriteLongCard(devnodeptr^.dnStackSize,8);
- X WriteLn;
- X
- X (* print out the name of the handler *)
- X Write(CHR(9));
- X WriteString("Handler : ");
- X cptr:=PtrFromBPTR(devnodeptr^.dnHandler);
- X IF cptr^ = CHR(0) THEN
- X WriteString(" default dos handler");
- X ELSE
- X WriteBSTR(devnodeptr^.dnHandler);
- X END;
- X WriteLn;
- X
- X END; (* device case *)
- X
- X (* I don't bother extracting any info from VOLUMES|DIRS
- X there's not much of interest in there anyway
- X *)
- X
- X WriteLn;
- X
- X devlistptr:=PtrFromBPTR(devlistptr^.dlNext);
- X (* scan on down devlist *)
- XEND;
- X
- X
- XCloseLibrary(DOSBase);
- X
- XEND lister.
- END_OF_FILE
- if test 6787 -ne `wc -c <'listdevs.mod'`; then
- echo shar: \"'listdevs.mod'\" unpacked with wrong size!
- fi
- # end of 'listdevs.mod'
- fi
- if test -f 'listdevs.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'listdevs.uu'\"
- else
- echo shar: Extracting \"'listdevs.uu'\" \(10702 characters\)
- sed "s/^X//" >'listdevs.uu' <<'END_OF_FILE'
- Xbegin 666 listdevs
- XM```#\P`````````#``````````(```8B````=`````````/I```&(D[Y```0"
- XMX"!?D)"PJ``$8@SC@-"H``C0\`@`3M#1Z``(68A.T"(`<`9.1TYU3E;_Z"H`W
- XM>`G:A#U%__XJ#E"%+47_Z$#N__@M3?_T+5;_\$YH+4C_[`QN``?__F<(#&X`%
- XM"/_^9A0M;@`2__HJ+O_H4(4M1?_H3OH`0@QN``___F8,3F@M:``(__I.^@`N6
- XM#&X`$/_^9@Q"KO_Z0J[_\$[Z`!H,;@`)__YE"DYH+5#_^D[Z``@M;@`*__I)U
- XM^0```!@XKO_^0BP``BEN__H`!#EN__@`""EN__0`"BEN__``#BEN_^P`$BENQ
- XM__``%AE\``$`&BYN_^@@.0```!0O0``"/KP``"Q63FA9B$Y@3G-.7DYU2?D`)
- XM``!4*@PB17``+'@`!$ZN_=@J`"Q%.CD````8!D4!]4C%(@5.KO]P($]!Z/^`W
- XMD<"Q[0`$8@9R`W`&3D=.=4J?+T[__$YN+2\``CT7+2___$CF__PB42".+$E,/
- XMWC__+U[__#Z>+UX``DYF+&___$YS2I\O3O_\3FXM+P`"/1<M+__\2.;__")1<
- XM((Y'^@`J+0L]/$ZY/3PG`#T\1OPDCBQ)3-X__R]>__P^GB]>``).9BQO__Q.&
- XM<R].__Q.;BTO``8]+P`$+2___$CF__P@7R)H`"0BCBQ(3-X__R]>__P^GB]>C
- XM``).9BQO__Q.<T;\)P`N'PP'`"=F!DZY```"4`P'`"9F!DZY```!4`P'`"5F=
- XM!DZY```!@@P'``IF"'#X3KD````L#`<`"V8(</=.N0```"PP!T1`4D!.N0``P
- XM`"Q*GU4`9@@"5_C_@U=.<U,`9@0^@4YS4P!F!D;\(`!.<U,`9@1.<4YS4P!F8
- XM"B`!3KD````L3G-.5@``2.=X`"(N``PD+@`(M+P``/__8AY"0X+":`XX`4)!)
- XM2$&"PC8!,@2"PDA#-@%"04A!8!Y"@S8!2$-"04A!.#P`#^.+XY&R@F4$DH)2%
- XM0U',__(M0P`,+4$`"$S?`!Y.7DYU3E8``$CG_P!,[@#P``A(1#8$2$:]0UOG5
- XM-`0P/'_PQ$!G``$.-@;&0&<``0;60@1#/_!C``#\:P``_G`/R$`(Q``$S$`(^
- XMQ@`$=``_`S`$P,9(0#($PL<V!$A&QL;0@S8$2$?&QTA!TD-"0TA#T8-(1#8$&
- XMQL;20TA!0D-(0]-@1(1L;&T(,V!,;'TH/1@C8$2$?(QT)$2$32A-&"-@7&X
- XMQM*#T8(V!4A&QL9"0TA#TH/1@DA%-@7&QM*#T8)(1LS%2$'21DA!0D9(1M&&M
- XM2$?*QT)%2$72A=&"4('1@C8?>`1Z&0L`9P921`9#`!`4`.BZ0@+HJ.BI@H);'
- XM!0L`9@S4@M.!T8`$0P`*8R1*0VLH2$`"0``/@$-(0$H?9P1V'P?`2.X``P`02
- XM3-\`_TY>3G543W``<@!@ZG`%3KD````D3E8``$CG_P!,[@#P``A(1#($`D%_0
- XM\&<``(Y(1C`&`D!_\&<``'"0009`/_!K``!X,@:Y05OG`D8`#PC&``0"1``/,
- XM",0`!$A&2$1R'G8`82(D`W(7=@!A%G()XZO5@FM.!$``$&L``"S6@]6"8$#>"
- XMA]V&O(1<R?_X`\.>A9V$6\G_[FH,WH7=A`.#2D%=R?_@3G54CW0`=@!([@`,#
- XM`!!,WP#_3EY.=7`%3KD````D?``&@P``"`#5AF0*XI+BDP9``!!KXG(`,@)^/
- XM"^ZJ[JONN4(!AH%(0@)"``^$0$A"2A]GMG`?`<)@L$Y6``!(Y^``<``B+@`([
- XM9T@T/$'@2$$P`68*2$$P`7(`!$(!`$)!#$``_V(,X8CAF8`!0@$$0@"`2D!K[
- XM"@1"`!#2@=%`:O;KB.N9@`%"`4A``D``#X!"2$!([@`#``A,WP`'3EY.=4YUG
- XM3E8``$CGX``@+@`(XY@D``*``/___P*"_P```&82<`!R`$CN``,`"$S?``=.%
- XM7DYUYHKBB.*2!H(X````(@#FB.:9`H%P````@()@UDYQ3G%.<2H`(\4````$\
- XM*@@CQ0`````J#R/%````#"`O``0J`"/%````""HY````#)JY````"%"%(\4`[
- XM``!02?D```:01_D```!4>@L6W%?-__PC_````1`````4+'@`!")\`````$ZN8
- XM_MHJ`"/%````$"/Y````$````$PJ/````?XH>0```$PI10`R+'@`!'`'3J[^]
- XMJG`%3J[^JG`&3J[^JD*G0J="IR)Y````4"\)0J<J3Y[\`"2=SF$*+GD````,D
- XM<`!.=4[Y```&HF1O<RYL:6)R87)Y`$[Y```%Q$*Y````8D[Y```(@$Y6```O:
- XM#B)N``@L>``$3J[^8BQ?3EY.=4Y6```O#BAN``PJ#")%("X`""QX``1.KOW83
- XM+%\J`"U%`!).7DYU3E8``"HN``CEA2U%``Q.7DYU3E;_X@QN`"``$&44#&X`E
- XM`@`490P,;@`D`!1B!'H!8`)Z`"AN``@8A2AN``A*%&<"8`1.^@#4>@`Z+@`4,
- XM+47_XD)N_^@O+@`6+R[_XDZY```"ABZ?*A\]1?_F#&X`"O_F9!@Z+O_F!D4`D
- XM,#@N_^A)[O_L&85``$[Z`!HZ+O_F!$4`"@9%`$$X+O_H2>[_[!F%0`!2;O_H_
- XM+RX`%B\N_^).N0```H98CRU?`!9*K@`69P)@DDHN`!)G$CHN_^A)[O_L&;P`[
- XM+5``3OH`!E-N_^@];O_H_^HZ+O_H2>[_[#@N_^J8;O_H)FX`#!>T4`!``%-N7
- XM_^A*;O_H;0)@VCHN_^I212AN``Q"-%``3EY.=4Y6__Y9CR\\.Z/7"DZY```%M
- XM>$GY````Y"C?*-\]?``#__XZ+O_^4T7G14GY````U"\T4`0O-%``+SD```%PG
- XM+SD```%L3KD```0H4(\Z+O_^YT5)^0```-1)]%``*-\HWU)N__X,;@`1__YF4
- XMMDY>3G5.^0``!IQ.5@``68]Z`"\%3KD```402?D```%<*-\HWUF/>@$O!4ZYO
- XM```%$$GY```!9"C?*-]9CWH*+P5.N0``!1!)^0```6PHWRC?80#_0EF/>@HO`
- XM!4ZY```%$$GY````G"C?*-]9CWID+P5.N0``!1!)^0```*0HWRC?68\J/```E
- XM)Q`O!4ZY```%$$GY````K"C?*-\O.0```+`O.0```*PO.0```+`O.0```*Q.I
- XMN0```NI0CTGY````M"C?*-\O.0```+@O.0```+0O.0```+@O.0```+1.N0``'
- XM`NI0CTGY````O"C?*-\O.0```,`O.0```+PO.0```,`O.0```+Q.N0```NI0R
- XMCTGY````Q"C?*-\O.0```,@O.0```,0O.0```,@O.0```,1.N0```NI0CTGYO
- XM````S"C?*-\O.0```-`O.0```,PO.0```-`O.0```,Q.N0```NI0CTGY````&
- XMU"C?*-\O.0```-@O.0```-0O.0```-@O.0```-1.N0```NI0CTGY````W"C?1
- XM*-\C_$$@``````!F(_P[H]<*````?B/\0L@``````&HC_#H#$F\```""(_Q&@
- XM'$``````;B/\.%&W%P```(8C_$R^O"````!R(_PVI\6L````BB/\6@X;R@``@
- XM`'8C_#4&-[T```".(_QTG<6N````>B/\,U:_E0```))"N0```)9.7D[Y```,-
- XM]DY6```O#BQY````8DZN_\HL7RH`+44`"$Y>3G5.5@``+PXL>0```&).KO]\@
- XM+%\J`"U%``A.7DYU3E8``"\.(BX`""QY````8DZN_R@L7RH`2H56Q40%'44`+
- XM#$Y>3G5.5@``+PXL>0```&).KO_$+%\J`"U%``A.7DYU3E8``"\.(BX`$"0N3
- XM``PF+@`(+'D```!B3J[_OBQ?*@`M10`43EY.=4Y6```O#B(N`!`D+@`,)BX`%
- XM""QY````8DZN_]`L7RH`+44`%$Y>3G5.5O_\*&X`#$JN``AF"CE\__\`!D[ZV
- XM`'8HK@`(+PQ5CR\N``A.N0``"LI8CQH?*%]*!6<(0BP`!$[Z`$XO#%F/+RX`@
- XM"$*G>@$O!4ZY```+#$_O``PJ'RA?+47__"\,68\O+@`(0J=Z_R\%3KD```L,!
- XM3^\`#"H?*%\I10`(2JP`"%?%1`4910`$0FP`!DY>3G5.5O_\*&X`"DJ48U0O[
- XM#%F/+Q1'[@`(*@LO!7H!+P5.N0``"S1/[P`,*A\H7RU%__QZ`;JN__QG'"\,U
- XM68].N0``"JXJ'RA?.44`!AE\``$`!$[Z``I";``&0BP`!$[Z``@Y?/__``9.D
- XM7DYU3E;_^BAN``Y*E&,"8`1.^@"`0F[_^CHN__JZ;@`,8A0Z+O_Z)FX`"$HS_
- XM4`!G!E)N__I@XB\,68\O%"9N``@J"R\%>@`Z+O_Z+P5.N0``"S1/[P`,*A\HS
- XM7RU%__QZ`#HN__JZKO_\9QPO#%F/3KD```JN*A\H7SE%``89?``!``1.^@`*O
- XM0FP`!D(L``1.^@`(.7S__P`&3EY.=4[Y```(>DY6``!*N0```&)F'EF//SP`7
- XM"DAY```-*$*G3KD```;&3^\`"B/?````8DY>3OD```U^9&]S+FQI8G)A<GD`/
- XM3E8``$(Y```!=$Y>3G5.5O_^0F[__CHN__ZZ;@`,8AHZ+O_^*&X`"!@T4`"X]
- XM.0```71G!E)N__Y@W#UN__X`#DY>3G5.^0``#/!.5@``80#_L$Y>3OD```Z._
- XM3E8``$AY```!AA\N``A.N0``"^Q<CTY>3G5.5@``'SP`"F$`_]Q4CTY>3G5.^
- XM5@``2'D```&&/RX`#"AN``A(5$ZY```,5D_O``I*>0```8Q7Q40%$\4```%V&
- XM3EY.=4Y6_ZQ5CS\N``XH;@`*2%1.N0``#4)<CSHN``B:7SU%__X,;@!/__YOW
- XM!CU\`$___D)N__PZ+O_^4T4_!3`N__RP5V\$3OH`'CHN__Q)[O^L&;P`(%``Z
- XM,"[__+!7;`92;O_\8.14CPQN`$___F<,.B[__DGN_ZQ"-%``/SP`3TAN_ZQA&
- XM`/]*7(\_+@`.*&X`"DA480#_.ER/3EY.=4[Y```->$Y6``!*N0```&)F'EF/@
- XM/SP`"DAY```/(D*G3KD```;&3^\`"B/?````8D(Y```!>$AY```!>EF/3KD`^
- XM``J23KD```M<4(])^0```7I'^0```9(FW";<)MQ(>0```899CTZY```*\$ZYW
- XM```+7%"/2?D```&&1_D```&>)MPFW";<3EY.^0``$.9I;CX@``!O=70^(`!DL
- XM;W,N;&EB<F%R>0!.5O_^0F[__CHN__ZZ;@`,8A0Z+O_^*&X`"$HT4`!G!E)N@
- XM__Y@XCUN__X`#DY>3G5.5O_6*BX`"DJ%;`)$A2\%/SP`"DJN``I=Q40%'P4_.
- XM/``G2&[_V$AN_]=.N0``!OY/[P`2/SP`)TAN_]@_+@`(3KD```WL4(\3^0``F
- XM`78```&J3EY.=4Y6_]8O+@`*/SP`"D(G/SP`)TAN_]A(;O_73KD```;^3^\`C
- XM$C\\`"=(;O_8/RX`"$ZY```-[%"/$_D```%V```!JDY>3G5.5O_4+RX`"C\\+
- XM`!!")S\\`"=(;O_82&[_U4ZY```&_D_O`!)5CS\\`"=(;O_880#_!%R//5__*
- XMUCHN_]9)[O_8&;P`2%``.B[_UE)%2>[_V$(T4``_/``G2&[_V#\N``A.N0``A
- XM#>Q0CQ/Y```!=@```:I.7DYU<`9.N0```3I.5O_Z68\O+@`(3KD```;L6(\MD
- XM7__\*&[__`P4``%E1#U\``'_^BAN__QZ`!H4/P4P+O_ZL%=C!$[Z`"@H;O_\K
- XM.B[_^DN\`/\?-%``3KD```V.5(\P+O_ZL%=D!E)N__I@VE2/3EY.=4[Y```.Q
- XMB$Y6``!9CS\\``I(>0``%H9"ITZY```&QD_O``HCWP```&(_/``?2'D``!:2A
- XM3KD```VZ7(].N0``#:@C^0```&(```&L68\H>0```:PH;``B+RP`&$ZY```&,
- XM[%B/(]\```&P68\H>0```;`O+``$3KD```;L6(\CWP```;1*N0```;1G`F`$[
- XM3OH%`C\\``M(>0``%K1.N0``#;I<CRAY```!M"\L`"A.N0``$'!8CTZY```-T
- XMJ!\\``E.N0``#8Y4CRAY```!M$JL``1F'#\\`!)(>0``%L).N0``#;I<CTZY)
- XM```-J$[Z`&XH>0```;1Z`;JL``1F'#\\`!)(>0``%M9.N0``#;I<CTZY```-O
- XMJ$[Z`$0H>0```;1Z`KJL``1F'#\\`!)(>0``%NI.N0``#;I<CTZY```-J$[Z]
- XM`!H_/``22'D``!;^3KD```VZ7(].N0``#:@H>0```;1*K``$9@)@!$[Z!`0C`
- XM^0```;0```&X68\H>0```;@O+``<3KD```;L6(\CWP```;Q9CRAY```!O"\L@
- XM``A.N0``!NQ8CR/?```!P$JY```!O&<.*'D```'`>A"ZE&4"8`1.^@+('SP`2
- XM"4ZY```-CE2//SP`#DAY```7$DZY```-NER/*'D```&\+RP`!$ZY```0<%B/E
- XM3KD```VH'SP`"4ZY```-CE2//SP`#DAY```7(DZY```-NER/*'D```&\+Q0_!
- XM/``(3KD```^T7(].N0``#:A">0```<PH>0```<`J%#\%,#D```',L%=C!$[Z-
- XM`CH?/``)3KD```V.5(]Z`#HY```!S"`%3KD````&`````````!````&&/SP`C
- XM#DAY```7,DZY```-NER/3OH!D#\\``Y(>0``%T).N0``#;I<CT[Z`7H_/``.2
- XM2'D``!=23KD```VZ7(].^@%D/SP`#DAY```78DZY```-NER/3OH!3C\\``Y(T
- XM>0``%W).N0``#;I<CT[Z`3@_/``.2'D``!>"3KD```VZ7(].^@$B/SP`#DAY-
- XM```7DDZY```-NER/3OH!##\\``Y(>0``%Z).N0``#;I<CT[Z`/8_/``.2'D`[
- XM`!>R3KD```VZ7(].^@#@/SP`#DAY```7PDZY```-NER/3OH`RC\\``Y(>0``B
- XM%]).N0``#;I<CT[Z`+0_/``.2'D``!?B3KD```VZ7(].^@">/SP`#DAY```7A
- XM\DZY```-NER/3OH`B#\\``Y(>0``&`).N0``#;I<CT[Z`'(_/``.2'D``!@2&
- XM3KD```VZ7(].^@!</SP`#DAY```8(DZY```-NER/3OH`1C\\``Y(>0``).*
- XMN0``#;I<CT[Z`#!.^@`D``P`(@`X`$X`9`!Z`)``I@"\`-(`Z`#^`10!*@%`,
- XM`58!;'`"3KD````D#'D`$````<QG)BAY```!P#HY```!S$N\`/_E12\T4``_4
- XM/``(3KD```^T7(].^@`D*'D```'`.CD```',2[P`_^5%+S10`#\\`!!.N0``\
- XM#_I<CTZY```-J#`Y```!S+!79`I2>0```<Q@`/W*5(\?/``)3KD```V.5(\_E
- XM/``.2'D``!A"3KD```VZ7(\H>0```;@O+``8/SP`"$ZY```/7ER/3KD```VH)
- XM'SP`"4ZY```-CE2//SP`#DAY```84DZY```-NER/*'D```&X+RP`%#\\``A.P
- XMN0``#[1<CTZY```-J!\\``E.N0``#8Y4CS\\``Y(>0``&&).N0``#;I<CUF/Q
- XM*'D```&X+RP`$$ZY```&[%B/(]\```'(*'D```'(2A1F%C\\`!-(>0``&').;
- XMN0``#;I<CT[Z`!0H>0```;@O+``03KD``!!P6(].N0``#:A.N0``#:A9CRAY[
- XM```!M"\43KD```;L6(\CWP```;1@`/KT+SD```!B3KD```:N6(].7DYU````X
- XM`&1O<RYL:6)R87)Y`&QI<W1D979S('8Q+C(@0GD@2F]H;B!$879I<R`V+SDP-
- XM``!N;V1E(&YA;64@.B```%1Y<&4@("`@("`@("`Z($1%5B``5'EP92`@("`@^
- XM("`@(#H@1$E2(`!4>7!E("`@("`@("`@.B!63TP@`%1Y<&4@("`@("`@("`Z"
- XM(#\_/R``1&5V:6-E("`@("`@(#H@`%5N:70@("`@("`@("`Z(`!E;G8@<VEZ@
- XM92`@("`@.B``8FQO8VL@<VEZ92`@(#H@`%-E8T]R9R`@("`@("`Z(`!.=6T@,
- XM2&5A9',@("`@.B``4V5C("\@0FQK("`@(#H@`&)L:W,@+R!T<F%C:R`Z(`!R8
- XM97-E<G9E9"`@("`@.B``<')E9F%C("`@("`@(#H@`$EN=&5R;&5A=F4@("`Z\
- XM(`!,;W<@0WEL("`@("`@.B``2&EG:"!#>6P@("`@(#H@`$)U9F9E<G,@("`@#
- XM("`Z(`!B=69M96UT>7!E("`@.B``36%X=')A;G-F97(@(#H@`$UA<VL@("`@#
- XM("`@("`Z(`!B;V]T<')I("`@("`@.B``1$]3='EP92`@("`@(#H@`%!R:2`@`
- XM("`@("`@("`Z(`!3=&%C:R`@("`@("`@.B``2&%N9&QE<B`@("`@(#H@`"!D&
- XM969A=6QT(&1O<R!H86YD;&5R``````/L````I0`````````"```"#````A@`C
- XM``(D```",@```D````),```"@```!"0```32```&!```!A@```9"```&C```L
- XM!IX```:J```'3```!YX```@8```(4```"'P```B,```(H@``"+@```C2```(H
- XMZ```"0(```DJ```)5```"7X```FH```)T@``"?P```J.```+@@``"Z@```O(&
- XM```,#```#"H```RB```,Q```#/(```T*```-$@``#20```UZ```-B@``#9X`Z
- XM``W0```-_@``#HH```ZB```.J@``#L@```[.```.\```#O8```\2```/B@``6
- XM#Z````_0```/Y@``$!8``!!<```0=```$(0``!#&```0X@``$/(``!#Z```12
- XM#@``$10``!$<```1/```$58``!%V```1?```$8X``!&6```1H```$;@``!&^W
- XM```1Q@``$>(``!'H```1\```$@P``!(2```2&@``$B@``!(N```2-@``$F0`J
- XM`!)^```2J@``$K8``!*\```2S@``$M8``!+@```2[```$O(``!,&```3#@``8
- XM$S8``!-(```37@``$V0``!-T```3>@``$XH``!.0```3H```$Z8``!.V```3H
- XMO```$\P``!/2```3X@``$^@``!/X```3_@``%`X``!04```4)```%"H``!0Z:
- XM```40```%%```!16```49@``%&P``!1\```4@@``%)(``!28```4J```%*X`2
- XM`!2^```4Q```%/@``!4B```52```%5```!5P```5?```%8(``!68```5H```^
- XM%:H``!6V```5O```%=(``!7:```5Y```%?```!7V```6"@``%B8``!8L```6N
- XM0@``%DH``!90```68```%G@```"2`````0```+H```#V```!$@```2H```7.@
- XM```%U@``!=X```7J```%\```!?8```7^```&"@``!AP```8R```&.```!CP`*
- XM``9(```&;@``!H(```:D```('@``"#8```A$```(2@``"%X```B2```(J```F
- XM"+X```C8```([@``"0@```D2```)&```"1X```DD```),@``"3P```E"```)1
- XM2```"4X```E<```)9@``"6P```ER```)>```"88```F0```)E@``"9P```FB[
- XM```)L```";H```G````)Q@``"<P```G:```)Y```">H```GP```)]@``"@0`R
- XM``H2```*'```"B8```HP```*.@``"D0```I.```*6```"F(```IL```*=@``:
- XM"H````J&```*F@``"K8```K6```*^```"R````M(```,_```#1P```TZ```-C
- XM8@``#90```W````-V@``#>0```Z4```.M```#KH```[````.U@``#MP```[HF
- XM```._@``#P0```^H```/K```#^X```_R```09```$&@``!$$```1(@``$28`Z
- XM`!$N```11```$4P``!%>```19```$80``!&H```1T```$?H``!(\```23@``]
- XM$E(``!):```2;```$G0``!*&```2C```$I0``!+$```2^@``$Q0``!,:```3Y
- XM)```$T```!4````5"```%0X``!4N```5-```%58``!5@```5B@``%<0``!8`&
- XM```6$@``%A@``!8X```66```%F@``!9R`````````_(```/K````=````_(`D
- X+``/J`````````_(X:
- X``
- Xend
- Xsize 7616
- END_OF_FILE
- if test 10702 -ne `wc -c <'listdevs.uu'`; then
- echo shar: \"'listdevs.uu'\" unpacked with wrong size!
- fi
- # end of 'listdevs.uu'
- fi
- if test -f 'zapdh0.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'zapdh0.doc'\"
- else
- echo shar: Extracting \"'zapdh0.doc'\" \(8428 characters\)
- sed "s/^X//" >'zapdh0.doc' <<'END_OF_FILE'
- XZapDH0
- X------
- XBy John Davis,
- X
- XVersion 1 October 1989
- XVersion 1.1 April 1990
- XVersion 1.2 24 June 1990
- XVersion 1.3 26 June 1990 ( 1.2 didn't last long did it :-)
- X
- XWhat it does
- X------------
- XAll you 2090 owners .... ever get _really_ annoyed with that forced
- XOldFileSystem DH0 partition? It's bad enough that you hvae to waste 400k
- Xof disk space with the OFS partition, but what is really inconvenient is
- Xthat you can't cancel the device ( <assign dh0: remove> sends you off to
- Xmeet the guru ), and therefore means you can't assign DH0: to be the FFS
- Xpartition.
- X
- XThis in turn means that all those _nice_ programs with install programs
- Xthat want to install to DH0, or those equally _nice_ programs that give
- Xyou file requester gadgets only for DH0 aren't much fun at all ( okay ...
- Xcall me lazy, but newzapping three zillion programs so as DH0->FH0 is not
- Xmy idea of fun ... at this point I should say a big thank you to all
- X_real_ programmers whose filereq's know what the _current_ dir is and
- Xstart there, or even better those that know how to scan a device list for
- Xavailable devices < not hard ... see the included example code for
- XListDevs > )
- X
- XWell this program is just for you. What it does is munge it's way through
- Xthe DOS device list, looking for that 'orrible DH0 node . When it finds
- Xit, it alters the DeviceNodeName so as it's name is now ZH0. You are then
- Xfree to assign DH0: onto your real main partition.
- X
- XOn top of this, if it detects that you have a df2: floppy disk but no
- Xdf1: it will create a 'clone' drive called df1:. This is linked (arghhh
- X... creeping unix terminology :-)) to df2:, and helps with programs that
- Xonly have gadgets for df0: and df1:, or if you (like me) have got used to
- Xtyping 'df1:' when referring to the second drive (old a500 traits die hard
- Xit seems)
- X
- XUsage
- X-----
- X
- XPretty simple really, just chuck ZAPDh0 somewhere in your
- Xstartup-sequence.
- X
- XIt is _probably_ safer if you do it once you've assigned everything over
- Xto the FFS partition, but it seems that it's pretty safe to put just about
- Xanywhere (as any existing dos locks to dh0:blah will still point to the
- X_old_ DH0: ... it's just any new references that will get the assigned
- XDH0).
- X
- Xeg .. in your startup-sequence
- X
- X ZAPDh0
- X assign DH0: fh0:
- X
- XFrom now on all references to DH0: will refer to FH0:. If you want to
- Xacces the OFS partition, you still can (unlike if you use assigndev), it's
- Xjust now called ZH0: ( and you can still access it via workbench). Plus
- X( if you had a df2: but no df1: ) you'll find you've grown a df1: as
- Xwell.
- X
- XIncidentally, should you want to STOP the floppy rename ( due to problems
- Xor if you just don't like the idea ) then just add these lines to your
- Xstartup-sequence instead of the above :
- X
- X ASSIGN DF1: sys:
- X ZapDH0:
- X ASSIGN DF1:
- X ASSIGN DH0: fh0:
- X
- X( I don't check to see if an existing DF1 is really a device or just a
- Xdir, so the assigned df1: will fool me into not touching the floppies )
- X
- XWarning
- X-------
- X
- XThis program is what CBM tech support would probably describe as 'wildly
- Xillegal' ... I access structures in a manner I've got no right to. As
- Xsuch I cannot guarantee it will work on any given setup, nor that it will
- Xwork in future releases of the OS. I have tested it on 2000's with
- X2090's,on 500's with A590s and on C-Ltd drives, and it's worked ok on all
- Xof them.
- X
- XBUT - there is now warranty implied or express on this package!! If it
- Xcauses your hard disk to explode, killing your cat and causing you to have
- Xa nervous breakdown, it is NOT MY FAULT. However, if you do experience
- Xany strange side effects or any other problems with or due to this
- Xprogram, get in touch so as I can see about remedying them.
- X
- X
- X
- XRevision History and Tech Notes
- X-------------------------------
- X
- Xv 1.3
- X-----
- X
- XTime for a total rethink of how the df2: floppy is renamed to be df1:!!
- XPlus a general code cleanup ( was starting to look a tad loosed in there).
- X
- XPrevious versions just altered the name field of the df1: devicelist node
- Xin place, this worked great for the 99% of the programs that went by the
- Xrules for working out what the host device was ( by host device I mean the
- Xunderlying block structured device the filesystem level device sits on e.g
- Xfor df0: the host device is trackdisk.device unit 0), but it turned out
- Xthat some programs were wrongly assuming that there would ALWAYS be a
- Xcorrespondence between the devname and the trackdisk devce unit acting as
- Xhost ( that is df1: is unit 1, df2: unit 2 etc ... which is normally
- Xtrue, but assuming this is NOT an officially supported practice ).
- X
- X ! Included in this archive is ListDevs, a small example program that
- X ! shows how to LEGALLY work out what the host device for a given dos
- X ! device is, plus it shows how to extract a lot of other info on the
- X ! host-dev - based in part on code posted to UseNet by Patrick
- X ! Horgan.
- X
- X ! You should NEVER assume a connection between device name and host
- X ! device and/or it's parameters .. cos sooner or later CBM are
- X ! likely to change them ( to support higher densities or the like ).
- X ! REMEMBER .. if they don't state it in the RKM, it's NOT safe to
- X ! assume it!!!!
- X
- XThis release gets around this problem by instead 'cloning' the devicelist
- Xnode for df2: back into the devicelist as df1:. This effectively makes
- Xdf1: an alias for df2:, and still costs <100 bytes of memory.
- X
- XThis allows ill-behaved programs (Virusx4 and the ARP install were notable
- Xoffenders) to work ( like why is it that two of my favourite programs, by
- Xsome of the programmers I respect the most, have to be the one's that do
- Xthings illegally :-( :-) ).
- X
- XI've tested the cloned drives fairly extensively, and everything seems to
- Xwork as it should with them. This includes correct operation thru
- XWorkBench, and with format and diskcopy ( format df1: puts a lock on BOTH
- Xdf1: and df2:, diskcopy df1: to df2: is the same as diskcopy df1: to
- Xdf1: in that it will prompt you to do disk-swaps ).
- X
- XHowever, the df2: clone/rename is still basically illegal operation
- X(a.k.a a neat hack :-), and it is possible some programs may not like
- Xhaving a drive clone done. Hence, if anyone experiences any anomalies due
- Xto using Zapdh0_1.3, could they please contact me ( stating what program
- Xhad difficulties ).
- X
- Xv 1.2
- X-----
- X
- XMy conscience got the better of me, the floppy rename is now handled in a
- Xsafer manner (unlike 1.1). ZapDH0 now first looks to see if there's
- Xalready a DF1 in the system ( an internal 3.5 floppy ). If there is
- Xalready a df1: it leaves the floppies alone (otherwise if you had an
- Xexternal as well you'd end up having two DF1:'s !! having this happen
- Xwasn't much fun). If it can't find a df1:, it looks to see if it can find
- Xa df2: and renames it if possible.
- X
- Xv 1.1
- X-----
- X
- XNothing mind-blowing I'm afraid ( boy, what I'd give to get rid of that
- Xslowfilesystem partition altogether, guess I'll just have to buy a 2091 ).
- X
- XAll that's changed is that ZapDH0's output is now cleaner, PLUS it now
- Xalso renames Df2: to be df1: (for people like me with one internal and
- Xone external floppy, but who are too used to df1: being the second drive)
- X
- XIt still renames DH0 ( if found ) to be ZH0 (it simply traverses down the
- XDOS devicelist and changes the name field in devicelist node for dh0: ->
- Xzh0: and for df2: -> df1:). To see exactly how this is done ( I smell
- XBPTRs :-) refer to the source code
- X
- X
- XLicence Agreement
- X-----------------
- X
- XThere is none !! ZapDH0 is absolutely 100% Public Domain (and is
- Xdedicated to all the other PD authors who help make the Amiga a great
- Xmachine).
- X
- XIf this program makes you happy, and makes your life a little easier,
- Xthat's good. If you feel obliged to thank me, then that's alright, I
- Xalways enjoy getting letters from fellow amiga users. If it makes you
- Xunhappy ( i.e. it's got some bug I haven't found ), then also write to
- Xme.
- X
- XMy contact adress is .....
- X
- X John Davis
- X 31 Clarence St
- X Christchurch 2
- X New Zealand
- X
- Xor you can find me on AmigaINFO BBS
- X NZ +3-371-531 1200/2400 Baud 24hrs a day
- X "home of the midnight coders"
- X
- Xor you can reach me via Internet/UseNet as CHEM194@canterbury.ac.nz
- X
- END_OF_FILE
- if test 8428 -ne `wc -c <'zapdh0.doc'`; then
- echo shar: \"'zapdh0.doc'\" unpacked with wrong size!
- fi
- # end of 'zapdh0.doc'
- fi
- if test -f 'zapdh0.mod' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'zapdh0.mod'\"
- else
- echo shar: Extracting \"'zapdh0.mod'\" \(5239 characters\)
- sed "s/^X//" >'zapdh0.mod' <<'END_OF_FILE'
- XMODULE zapper;
- X
- X(* zap DH0 device node name *)
- X(* by J Davis v1.3 26 6/90 *)
- X(* compiled using TDI m-2 3.01a *)
- X
- X
- X(*
- X this is an attempt to get around the problem with 2090's where
- X the first partition MUST be OFS and is called DH0. This is a real
- X problem when you have a main FFS partition, on which you have all
- X your programs etc, and programs that insist on using DH0
- X
- X This program zaps the DH0 node name so as it is called ZH0.
- X this is _extremely_ grungy, illegal etc ... but if it works
- X then it is a good way to cure the problem.
- X*)
- X
- X(* v1.1 changes
- X cleaned up screen output
- X now also renames df2: -> df1: for people like me who have
- X one internal and one external floppy drive
- X*)
- X
- X(* v1.2 changes
- X only renames df2: -> df1: if no df1: present already
- X gets around nastiness if you have 2 internals and an external :-)
- X*)
- X
- X(* v1.3 changes
- X changed strategy on df2:, now clones the device node, links it
- X back into the device list and renames the clone
- X*)
- X
- XFROM Memory IMPORT AllocMem,MemReqSet,MemPublic,MemClear;
- XFROM DOSLibrary IMPORT DOSName,DOSBase,BPTR,BSTR;
- XFROM DOSExtensions IMPORT DosBaseRec,RootNode,DosInfo,DeviceList;
- XFROM AmigaUtils IMPORT PtrFromBPTR,BPTRFromPtr;
- XFROM SYSTEM IMPORT NULL;
- XFROM InOut IMPORT WriteString,WriteLn;
- XFROM Libraries IMPORT OpenLibrary,CloseLibrary;
- XFROM DOSLibrary IMPORT DateStampRec;
- XFROM SYSTEM IMPORT TSIZE;
- X
- XTYPE
- X
- Xstring = ARRAY [0..255] OF CHAR;
- Xstrptr = POINTER TO string;
- X
- X
- XVAR
- X
- Xourdosbase : POINTER TO DosBaseRec; (* use this to access dosbase *)
- Xinfoptr : POINTER TO DosInfo; (* points to DOSinfo node *)
- Xdevlistptr : POINTER TO DeviceList; (* points to current place is DOS devlist *)
- Xnameptr : strptr;
- Xdf1present : BOOLEAN; (* flag to indicate df1: is already mounted *)
- Xcloneptr : POINTER TO DeviceList; (* for cloning operation *)
- X
- XBEGIN
- X
- XDOSBase:=OpenLibrary(DOSName,0); (* open the dos lib *)
- X
- XWriteString("ZAPDh0 v1.3 By John Davis 6/90");
- XWriteLn;
- X
- Xourdosbase:=DOSBase;
- X(* get a usable pointer onto dosbase *)
- X
- Xinfoptr:=PtrFromBPTR(ourdosbase^.dlRoot^.rnInfo);
- X(* get pointer dosinfo struct *)
- X
- Xdevlistptr:=PtrFromBPTR(infoptr^.diDevInfo);
- X(* get a pointer to start of devlist *)
- X
- Xdf1present:=FALSE;
- X(* initially assume df1: is not present *)
- X
- XWHILE devlistptr<>NULL DO
- X (* scan down device list checking as we go *)
- X
- X nameptr:=PtrFromBPTR(BPTR(devlistptr^.dlName));
- X (* get pointer to nodename *)
- X
- X IF (nameptr^[1]='D') AND (nameptr^[2]='H') AND (nameptr^[3]='0') THEN
- X (* this is dh0 so zap it *)
- X WriteString(" renamed DH0: to ZH0: ");
- X WriteLn;
- X nameptr^[1]:='Z'; (* we'll make it be called zh0: instead *)
- X END;
- X
- X IF (nameptr^[1]='D') AND (nameptr^[2]='F') AND (nameptr^[3]='1') THEN
- X (* found an existing df1 .. set flag so as not to try rename of df2 *)
- X WriteString(" found existing DF1:, will not attempt to rename DF2:");
- X WriteLn;
- X df1present:=TRUE;
- X END;
- X
- X devlistptr:=PtrFromBPTR(devlistptr^.dlNext);
- X (* scan on down devlist *)
- XEND;
- X
- XIF NOT df1present THEN
- X (* didn't find df1:, see if we can find df2
- X go back to start of devlist and re-scan
- X *)
- X
- X devlistptr:=PtrFromBPTR(infoptr^.diDevInfo);
- X (* get a pointer to the start of the devlist *)
- X
- X WHILE devlistptr<>NULL DO
- X (* scan down device list checking as we go *)
- X
- X nameptr:=PtrFromBPTR(BPTR(devlistptr^.dlName));
- X
- X IF (nameptr^[1]='D') AND (nameptr^[2]='F') AND (nameptr^[3]='2') THEN
- X (* this is df2:,so clone it *)
- X
- X WriteString(" found df2:, creating clone as df1:");
- X WriteLn;
- X
- X cloneptr:=AllocMem(TSIZE(DeviceList),MemReqSet{MemPublic,MemClear});
- X
- X (* first link in our clone on the devlist *)
- X cloneptr^.dlNext :=devlistptr^.dlNext;
- X devlistptr^.dlNext :=BPTRFromPtr(cloneptr);
- X
- X (* now copy the rest of the df2 struct over *)
- X cloneptr^.dlType :=devlistptr^.dlType;
- X cloneptr^.dlTask :=devlistptr^.dlTask;
- X cloneptr^.dlLock :=devlistptr^.dlLock;
- X cloneptr^.dlVolumeDate :=devlistptr^.dlVolumeDate;
- X cloneptr^.dlLockList :=devlistptr^.dlLockList;
- X cloneptr^.dlDiskType :=devlistptr^.dlDiskType;
- X cloneptr^.dlunused :=devlistptr^.dlunused;
- X
- X
- X (* now alter the name of the clone to be df1: *)
- X nameptr:=AllocMem(4,MemReqSet{MemPublic,MemClear});
- X cloneptr^.dlName:=BPTRFromPtr(nameptr);
- X
- X (* now put BSTR 'df1'into name *)
- X nameptr^[0]:=CHR(3);
- X nameptr^[1]:='D';
- X nameptr^[2]:='F';
- X nameptr^[3]:='1';
- X
- X END; (* found df2 if *)
- X
- X devlistptr:=PtrFromBPTR(devlistptr^.dlNext);
- X (* scan on down devlist *)
- X
- X END; (* while *)
- X
- XEND; (* if not found df1 *)
- X
- XCloseLibrary(DOSBase);
- X
- XEND zapper.
- END_OF_FILE
- if test 5239 -ne `wc -c <'zapdh0.mod'`; then
- echo shar: \"'zapdh0.mod'\" unpacked with wrong size!
- fi
- # end of 'zapdh0.mod'
- fi
- if test -f 'zapdh0.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'zapdh0.uu'\"
- else
- echo shar: Extracting \"'zapdh0.uu'\" \(7554 characters\)
- sed "s/^X//" >'zapdh0.uu' <<'END_OF_FILE'
- Xbegin 666 zapdh0
- XM```#\P`````````#``````````(```0Z````<`````````/I```$.D[Y```,F
- XM["(`<`9.1TYU3E;_Z"H`>`G:A#U%__XJ#E"%+47_Z$#N__@M3?_T+5;_\$YH/
- XM+4C_[`QN``?__F<(#&X`"/_^9A0M;@`2__HJ+O_H4(4M1?_H3OH`0@QN``__K
- XM_F8,3F@M:``(__I.^@`N#&X`$/_^9@Q"KO_Z0J[_\$[Z`!H,;@`)__YE"DYHZ
- XM+5#_^D[Z``@M;@`*__I)^0```!@XKO_^0BP``BEN__H`!#EN__@`""EN__0`5
- XM"BEN__``#BEN_^P`$BEN__``%AE\``$`&BYN_^@@.0```!0O0``"/KP``"Q6;
- XM3FA9B$Y@3G-.7DYU2?D```!4*@PB17``+'@`!$ZN_=@J`"Q%.CD````8!D4!#
- XM]4C%(@5.KO]P2I\O3O_\3FXM+P`"/1<M+__\2.;__")1((XL24S>/_\O7O_\I
- XM/IXO7@`"3F8L;__\3G-*GR].__Q.;BTO``(]%RTO__Q(YO_\(E$@CD?Z`"HM^
- XM"ST\3KD]/"<`/3Q&_"2.+$E,WC__+U[__#Z>+UX``DYF+&___$YS+T[__$YNG
- XM+2\`!CTO``0M+__\2.;__"!?(F@`)"*.+$A,WC__+U[__#Z>+UX``DYF+&__,
- XM_$YS1OPG`"X?#`<`)V8&3KD```(<#`<`)F8&3KD```$<#`<`)68&3KD```%.!
- XM#`<`"F8(</A.N0````X,!P`+9@AP]TZY````#C`'1$!20$ZY````#DJ?50!F6
- XM"`)7^/^#5TYS4P!F!#Z!3G-3`&8&1OP@`$YS4P!F!$YQ3G-3`&8*(`%.N0``Z
- XM``Y.<TY6``!(Y_\`3.X`\``(2$0V!$A&O4-;YS0$,#Q_\,1`9P`!#C8&QD!G?
- XM``$&UD($0S_P8P``_&L``/YP#\A`",0`!,Q`",8`!'0`/P,P!,#&2$`R!,+')
- XM-@1(1L;&T(,V!$A'QL=(0=)#0D-(0]$0V!,;&TD-(04)#2$/1@S8$2$;&A
- XMQM"#-@3&Q]*#T8(V!$A'R,="1$A$TH31@C8%QL;2@]&"-@5(1L;&0D-(0]*#$
- XMT8)(138%QL;2@]&"2$;,Q4A!TD9(04)&2$;1ADA'RL="14A%TH71@E"!T8(V]
- XM'W@$>AD+`&<&4D0&0P`0%`#HND("Z*CHJ8*"6P4+`&8,U(+3@=&`!$,`"F,DD
- XM2D-K*$A``D``#X!#2$!*'V<$=A\'P$CN``,`$$S?`/].7DYU5$]P`'(`8.IP5
- XM!4ZY````!DY6``!(Y_\`3.X`\``(2$0R!`)!?_!G``".2$8P!@)`?_!G``!P+
- XMD$$&0#_P:P``>#(&N4%;YP)&``\(Q@`$`D0`#PC$``1(1DA$<AYV`&$B)`-RG
- XM%W8`819R">.KU8)K3@1``!!K```LUH/5@F!`WH?=AKR$7,G_^`/#GH6=A%O)J
- XM_^YJ#-Z%W80#@TI!7<G_X$YU5(]T`'8`2.X`#``03-\`_TY>3G5P!4ZY````T
- XM!GP`!H,```@`U89D"N*2XI,&0``0:^)R`#("?@ONJNZK[KE"`8:!2$("0@`/6
- XMA$!(0DH?9[9P'P'"8+!.5@``2.?@`'``(BX`"&=(-#Q!X$A!,`%F"DA!,`%R'
- XM``1"`0!"00Q``/]B#.&(X9F``4(!!$(`@$I`:PH$0@`0TH'10&KVZXCKF8`!!
- XM0@%(0`)```^`0DA`2.X``P`(3-\`!TY>3G5.=4Y6``!(Y^``("X`"..8)``"U
- XM@`#___\"@O\```!F$G``<@!([@`#``A,WP`'3EY.=>:*XHCBD@:".````"(`L
- XMYHCFF0*!<````(""8-9.<4YQ3G$J`"/%````!"H((\4`````*@\CQ0````P@2
- XM+P`$*@`CQ0````@J.0````R:N0````A0A2/%````4$GY```%^$?Y````5'H+\
- XM%MQ7S?_\(_P```#R````%"QX``0B?`````!.KO[:*@`CQ0```!`C^0```!``>
- XM``!,*CP```'**'D```!,*44`,BQX``1P!TZN_JIP!4ZN_JIP!DZN_JI"IT*G2
- XM0J<B>0```%`O"4*G*D^>_``DG<YA"BYY````#'``3G5.^0``!BQD;W,N;&EB,
- XM<F%R>0!.5@``+PX@+@`,(BX`""QX``1.KO\Z+%\J`"U%`!!.7DYU3OD```4L,
- XM0KD```!B3OD```<03E8``"\.(FX`""QX``1.KOYB+%].7DYU3E8``"\.*&X`I
- XM#"H,(D4@+@`(+'@`!$ZN_=@L7RH`+44`$DY>3G5.5@``*BX`".2-+44`#$Y>_
- XM3G5.5@``*BX`".6%+44`#$Y>3G5.5O_^68\O/#NCUPI.N0``!.!)^0```.0H*
- XMWRC?/7P``__^.B[__E-%YT5)^0```-0O-%`$+S10`"\Y```!<"\Y```!;$ZY]
- XM```#D%"/.B[__N=%2?D```#42?10`"C?*-]2;O_^#&X`$?_^9K9.7DYU3OD`+
- XM``8F3E8``%F/>@`O!4ZY```$>$GY```!7"C?*-]9CWH!+P5.N0``!'A)^0``R
- XM`60HWRC?68]Z"B\%3KD```1X2?D```%L*-\HWV$`_T)9CWH*+P5.N0``!'A)A
- XM^0```)PHWRC?68]Z9"\%3KD```1X2?D```"D*-\HWUF/*CP``"<0+P5.N0``4
- XM!'A)^0```*PHWRC?+SD```"P+SD```"L+SD```"P+SD```"L3KD```)24(])3
- XM^0```+0HWRC?+SD```"X+SD```"T+SD```"X+SD```"T3KD```)24(])^0``O
- XM`+PHWRC?+SD```#`+SD```"\+SD```#`+SD```"\3KD```)24(])^0```,0H*
- XMWRC?+SD```#(+SD```#$+SD```#(+SD```#$3KD```)24(])^0```,PHWRC?T
- XM+SD```#0+SD```#,+SD```#0+SD```#,3KD```)24(])^0```-0HWRC?+SD`>
- XM``#8+SD```#4+SD```#8+SD```#43KD```)24(])^0```-PHWRC?(_Q!(```V
- XM````9B/\.Z/7"@```'XC_$+(``````!J(_PZ`Q)O````@B/\1AQ``````&XC&
- XM_#A1MQ<```"&(_Q,OKP@````<B/\-J?%K````(HC_%H.&\H```!V(_PU!C>]W
- XM````CB/\=)W%K@```'HC_#-6OY4```"20KD```"63EY.^0``"X9.5@``+PXL;
- XM>0```&).KO_*+%\J`"U%``A.7DYU3E8``"\.+'D```!B3J[_?"Q?*@`M10`(,
- XM3EY.=4Y6```O#B(N``@L>0```&).KO\H+%\J`$J%5L5$!1U%``Q.7DYU3E8`[
- XM`"\.+'D```!B3J[_Q"Q?*@`M10`(3EY.=4Y6```O#B(N`!`D+@`,)BX`""QY!
- XM````8DZN_[XL7RH`+44`%$Y>3G5.5@``+PXB+@`0)"X`#"8N``@L>0```&).5
- XMKO_0+%\J`"U%`!1.7DYU3E;__"AN``Q*K@`(9@HY?/__``9.^@!V**X`""\,H
- XM58\O+@`(3KD```E:6(\:'RA?2@5G"$(L``1.^@!.+PQ9CR\N``A"IWH!+P5..
- XMN0``"9Q/[P`,*A\H7RU%__PO#%F/+RX`"$*G>O\O!4ZY```)G$_O``PJ'RA?)
- XM*44`"$JL``A7Q40%&44`!$)L``9.7DYU3E;__"AN``I*E&-4+PQ9CR\41^X`-
- XM""H++P5Z`2\%3KD```G$3^\`#"H?*%\M1?_\>@&ZKO_\9QPO#%F/3KD```D^-
- XM*A\H7SE%``89?``!``1.^@`*0FP`!D(L``1.^@`(.7S__P`&3EY.=4Y6__HHC
- XM;@`.2I1C`F`$3OH`@$)N__HZ+O_ZNFX`#&(4.B[_^B9N``A*,U``9P92;O_Z/
- XM8.(O#%F/+Q0F;@`(*@LO!7H`.B[_^B\%3KD```G$3^\`#"H?*%\M1?_\>@`Z+
- XM+O_ZNJ[__&<<+PQ9CTZY```)/BH?*%\Y10`&&7P``0`$3OH`"D)L``9"+``$D
- XM3OH`"#E\__\`!DY>3G5.^0``!PI.5@``2KD```!B9AY9CS\\``I(>0``"[A"0
- XMITZY```&4$_O``HCWP```&).7D[Y```+V&1O<RYL:6)R87)Y`$Y6``!".0``.
- XM`71.7DYU3OD```N`3E8``&$`_^9.7D[Y```,3$Y6``!(>0```88?+@`(3KD`S
- XM``I\7(].7DYU3E8``!\\``IA`/_<5(].7DYU3E8``$AY```!AC\N``PH;@`(Z
- XM2%1.N0``"N9/[P`*2GD```&,5\5$!1/%```!=DY>3G5.^0``"]).5@``2KD`9
- XM``!B9AY9CS\\``I(>0``#.!"ITZY```&4$_O``HCWP```&)".0```7A(>0``G
- XM`7I9CTZY```)(DZY```)[%"/2?D```%Z1_D```&2)MPFW";<2'D```&&68].$
- XMN0``"8!.N0``">Q0CTGY```!AD?Y```!GB;<)MPFW$Y>3OD```SR:6X^(```Q
- XM;W5T/B``9&]S+FQI8G)A<GD`3OD```Q&3E8``%F//SP`"DAY```00D*G3KD`,
- XM``903^\`"B/?````8C\\`!U(>0``$$Y.N0``#!1<CTZY```,`B/Y````8@``>
- XM`:I9CRAY```!JBAL`"(O+``83KD```:(6(\CWP```:Y9CRAY```!KB\L``1.:
- XMN0``!HA8CR/?```!LD(Y```!NDJY```!LF<"8`1.^@#068\H>0```;(O+``HS
- XM3KD```:(6(\CWP```;8H>0```;8,+`!$``%F0"AY```!M@PL`$@``F8R*'D`#
- XM``&V#"P`,``#9B0_/``72'D``!!N3KD```P47(].N0``#`(H>0```;89?`!:K
- XM``$H>0```;8,+`!$``%F/"AY```!M@PL`$8``F8N*'D```&V#"P`,0`#9B`_M
- XM/``V2'D``!"(3KD```P47(].N0``#`(3_``!```!NEF/*'D```&R+Q1.N0``#
- XM!HA8CR/?```!LF``_R9*.0```;IF`F`$3OH!T%F/*'D```&N+RP`!$ZY```&V
- XMB%B/(]\```&R2KD```&R9P)@!$[Z`:A9CRAY```!LB\L`"A.N0``!HA8CR/?5
- XM```!MBAY```!M@PL`$0``68>*'D```&V#"P`1@`"9A`H>0```;8,+``R``-F)
- XM`F`$3OH!0C\\`"1(>0``$,!.N0``#!1<CTZY```,`EF/>BPO!2\\``$``4ZY^
- XM```&!%"/(]\```&\*'D```&R)GD```&\)I19CR\Y```!O$ZY```&=EB/*'D`J
- XM``&R*)\H>0```;(F>0```;PG;``$``0H>0```;(F>0```;PG;``(``@H>0``Y
- XM`;(F>0```;PG;``,``PH>0```;(F>0```;Q)[``01^L`$";<)MPFW"AY```!9
- XMLB9Y```!O"=L`!P`'"AY```!LB9Y```!O"=L`"``("AY```!LB9Y```!O"=L?
- XM`"0`)%F/>@0O!2\\``$``4ZY```&!%"/(]\```&V68\O.0```;9.N0``!G98:
- XMCRAY```!O"E?`"@H>0```;88O``#*'D```&V&7P`1``!*'D```&V&7P`1@`"S
- XM*'D```&V&7P`,0`#68\H>0```;(O%$ZY```&B%B/(]\```&R8`#^3B\Y````E
- XM8DZY```&.%B/3EY.=0````!D;W,N;&EB<F%R>0!:05!$:#`@=C$N,R!">2!*:
- XM;VAN($1A=FES(#8O.3```"`@(')E;F%M960@1$@P.B!T;R!:2#`Z(```("`@+
- XM9F]U;F0@97AI<W1I;F<@1$8Q.BP@=VEL;"!N;W0@871T96UP="!T;R!R96YA9
- XM;64@1$8R.@`@("!F;W5N9"!D9C(Z+"!C<F5A=&EN9R!C;&]N92!A<R!D9C$Z-
- XM```````#[````%(``````````@```=@```'D```!\````?X```(,```"&```9
- XM`DP```.,```$.@``!6P```6````%J@``!?0```8H```&-```!J@```;@```'\
- XM#```!QP```<R```'2```!V(```=X```'D@``![H```?D```(#@``"#@```ABD
- XM```(C```"1X```H2```*.```"E@```J<```*N@``"S(```M4```+@@``"YH`S
- XM``NB```+M```"]0```OD```+^```#"H```Q(```,8```#&@```R&```,C```1
- XM#*X```RT```,T```#.X```S^```-!@``#1H```T@```-*```#4@```UB```-'
- XMD```#<P```W2```-V@``#AH```X@```.*```#D````YL```.E```#M8```[<S
- XM```.Y```#O8```\:```/O```#](``!`<```0-````)L````!````G````-@`+
- XM``#T```!#```!38```4^```%1@``!5(```58```%7@``!68```5R```%A```,
- XM!9H```6@```%I```!;````76```%Z@``!BX```:N```&Q@``!M0```;:```&@
- XM[@``!R(```<X```'3@``!V@```=^```'F```!Z(```>H```'K@``$```"18```DJ```)1@``"68```F(```)L```"=@```N,P
- XM```+K```"\H```ON```,&@``##0```P^```,4@``#'(```QX```,?@``#)0`_
- XM``R:```,I@``#+P```S"```-$```#2X```TR```-.@``#5````U8```-:@``%
- XM#7````UV```-A@``#9@```V>```-K```#;H```W@```-[```#?H```X(```.T
- XM,```#C@```Y(```.4@``#F(```YT```.>@``#HH```Z<```.H@``#K````Z^B
- XM```._@``#P0```\*```/%```#R(```\J```/,```#SP```]"```/3@``#U0`@
- XM``]@```/9@``#WH```^````/C```#Y(```^>```/I```#\0```_,```/V@``O
- XM#^0```_N```/^@``$`8``!`4```0)```$"X````````#\@```^L```!P```#[
- X-\@```^H````````#\@8`:
- X``
- Xend
- Xsize 5368
- END_OF_FILE
- if test 7554 -ne `wc -c <'zapdh0.uu'`; then
- echo shar: \"'zapdh0.uu'\" unpacked with wrong size!
- fi
- # end of 'zapdh0.uu'
- fi
- echo shar: End of archive 1 \(of 1\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have the archive.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
- Mail comments to the moderator at <amiga-request@uunet.uu.net>.
- Post requests for sources, and general discussion to comp.sys.amiga.
-